package com.boatAnchorAssistant.service.service.in;

import com.boatAnchorAssistant.pojo.param.authorization.AuthorizationParam;
import com.boatAnchorAssistant.pojo.param.authorization.GetAuthorizedTreeParam;
import com.boatAnchorAssistant.pojo.vo.authorization.AuthorizedVo;
import com.boatAnchorAssistant.pojo.vo.authorization.CurrentUserPageResourceVo;
import com.boatAnchorAssistant.pojo.vo.authorization.GetAuthorizedTreeVo;
import javax.validation.Valid;
import org.springframework.web.bind.annotation.RequestBody;

import java.util.List;

/**
 * 【描 述】：
 * 【环 境】：J2SE  17
 * 【详 细】：
 *
 * @author 李松林
 * @version v1.0 2024/5/3 新建
 * @since 2024/5/3
 */
public interface AuthorizationService {

    /**
     * 授权
     *
     * @param param
     */
    void authorization(@RequestBody @Valid AuthorizationParam param);


    /**
     * 获取被授权的树形图
     *
     * @return
     */
    GetAuthorizedTreeVo getAuthorizedTree(GetAuthorizedTreeParam param);


    /**
     * 获取当前用户被授权页面
     * @return
     */
    List<CurrentUserPageResourceVo> getCurrentUserPageResource();


    /**
     * 批量移除某些对象的授权
     * @param targetIds
     */
    void bathRemoveTargetAuthorized(List<Long> targetIds);

}
